/* 
    这个 js  就是一个工具类文件
    里面可以放很多将来我可能会使用到的函数
*/
/* 
    用来求范围之间的随机数
    @param {a}  范围下限
    @param {b}  范围上限
    @return 随机数
*/
function getRandom(a, b) {
    return Math.floor(Math.random() * (b - a + 1) + a)
}
/* 
    用来求随机颜色字符串
    @return 随机颜色字符串
*/
function getColor() {
    return 'rgb(' + getRandom(0, 255) + ',' + getRandom(0, 255) + ',' + getRandom(0, 255) + ')'
}

/* 
    绑定事件
    @param {ele} 要绑定事件的元素
    @param {type} 事件类型
    @param {fn} 事件处理函数 
*/
function on(ele, type, fn) {
    if (ele.addEventListener) {
        if(type.indexOf('on') === 0){
            type = type.slice(2)
        }
        ele.addEventListener(type,fn)
    }else{
        if(type.indexOf('on') !== 0){
            type = 'on' + type
        }
        ele.attachEvent(type,fn)
    }
}

/* 
    解绑事件
*/
function off(ele,type,fn){
    if(ele.removeEventListener){
        if(type.indexOf('on') === 0){
            type = type.slice(2)
        }
        ele.removeEventListener(type,fn)
    }else{
        if(type.indexOf('on') !== 0){
            type = 'on' + type
        }
        ele.detachEvent(type,fn)
    }
}

/* 
    获取元素
    @params {selector} 选择器
    @params {context}  元素范围
    @return 获取到的元素或者元素集合
*/
function my$(selector,context){
    context = context || document
    if(selector.indexOf('#') === 0){
        return document.getElementById(selector.slice(1))
    }else if(selector.indexOf('.') === 0){
        return context.getElementsByClassName(selector.slice(1))
    }else{
        return context.querySelectorAll(selector)
    }
}

/* 
    获取元素的非行内样式
    @param {ele} 要获取或者设置样式的元素
    @param {attr} 要获取或者设置的样式属性名
    @param {value} 要设置的属性值
    @return 获取到的元素的样式
*/
function css(ele,attr,value){
    if(!value){
        return window.getComputedStyle ? window.getComputedStyle(ele)[attr] : ele.currentStyle[attr]
    }
    ele.style[attr] = value
}